Software testing is a key component in software development process as it improves consistency and performance of software developed. Though main benefit of testing involves error rectification and debugging, testing also helps businesses understand an actual and expected outcome. The objective of the software testing is to verify and validate the integration of software, hardware, and configuration thereof, and to prevent malfunction of software when in use. Among multiple types of software testing, an exploratory testing is a freestyle or independent testing, which is independent of any set of test cases or scenarios and is based on experience and knowledge of a tester regarding requirements specified by a client. Particularly, the exploratory testing is a manual effort which is usually performed after automated system testing. The exploratory testing is performed to identify any issues which system testing might have ignored by having a manual test engineer trying to identify issues through random explorations.
Currently, conventional testing tools may not automate exploratory testing due to nature of testing being performed. The testing tools currently available do not have variability and lack an ability to replicate exploration behaviour and adapt to the changing nature of the application. One of existing approach for testing each of the components of an application is brute force approach, in order to cover all scenarios. However, brute force approach may be impractical due to time and resource constraint.
The information disclosed in this background of the disclosure section is only for enhancement of understanding of the general background of the invention and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.